/*
 * @author Bardelle Renzo
 */

var status="modifica";
var poltrone=0;

var map={
		1:"A",
		2:"B",
		3:"C",
		4:"D",
		5:"E",
		6:"F",
		7:"G",
		8:"H",
		9:"I",
		10:"J",
		11:"K",
		12:"L",
		13:"M",
		14:"N",
		15:"O",
		16:"P",
		17:"Q",
		18:"R",
		19:"S",
		20:"T",
		21:"U",
		22:"V",
		23:"W",
		24:"X",
		25:"Y",
		26:"Z"
	};

function clearLog(){
	$("#messaggi-utente").html("");
}

function clearFormValues(){
	$("#poltrone").html("");
	$("#r-number").val("2");
	$("#c-number").val("2");
	$("#scelta-sede").val("-1");
	$("#scelta-sala").html("<option value=\"-1\"></option>\n");
	$("#nome-sala").val(null);
	$("#sigla-sala").val(null);
	$("#id-sala").val(null);
	$("#totale-posti").val(0);
	clearLog();
	nomeSalaChanged();
	siglaSalaChanged();
}

function logAttenzione(){
	logUtente("<p>Attenzione! <br><br>" +
			"La rimozione di sale o poltrone gia' esistenti e' consentita " +
			"soltanto se prive di relazioni con altri elementi del database." +
			"Questa limitazione garantisce di conservare intatto lo storico delle prenotazioni all'interno del db.<br><br>" +
			"Per la rimozione di sale o poltrone collegate ad altri elementi come proiettori o spettacoli rivolgersi all'amministratore del database.</p>");
}

function logUtente(messaggio){
	$("#messaggi-utente").html(messaggio+"<input type=\"button\" onclick=\"clearLog()\" value=\"X\" />");
}

function sceltaSede(){
	if( status === "creazione" || parseInt($("#scelta-sede").val()) == -1)
	{
		$("#scelta-sala").html("<option value=\"-1\"></option>\n");
		return false;
	}
	
	logUtente("<p>Generazione elenco sale in corso...</p>");
	$.ajax({  
			type: "GET",  
			url: "../elenca-sale-in-sede-option",  
			data: "codice_sede="+$("#scelta-sede").val(),  
			success: function(response) 
			{
				$("#scelta-sala").html("<option value=\"-1\">...</potion>\n"+response);
				clearLog();
			},
			error: function() 
			{
				$("#scelta-sala").html("<option value=\"-1\"></option>\n");
				logUtente("<p>Errore di connessione al server:<br/> si prega di verificare lo stato della connessione e ripetere l'operazione.</p>");
			}
	});
}

function sceltaSala(){
	if( parseInt($("#scelta-sala").val()) == -1)
	{
		$("#poltrone").html("");
		$("#r-number").val("2");
		$("#c-number").val("2");
		$("#nome-sala").val(null);
		$("#sigla-sala").val(null);
		$("#id-sala").val(null);
		return false;
	}
	
	$("#id-sala").val($("#scelta-sala").val());
	$("#nome-sala").val($("#scelta-sala option:selected").html());
	$("#sigla-sala").val($("#scelta-sala option:selected").attr("sigla"));
	
	logUtente("<p>Generazione superficie sala in corso...</p>");
	
	$.ajax({  
			type: "GET",  
			url: "../elenca-poltrone-in-sala-td",  
			data: "id_sala="+$("#id-sala").val(),  
			success: function(response) 
			{
				$("#poltrone").html(response);
				$("#r-number").val($("#poltrone").find('tr').length);
				if($("#poltrone").find('tr').length > 0)
					$("#c-number").val($("#poltrone").find('tr')[0].cells.length);
				else
					$("#c-number").val(0);
				nomeSalaChanged();
				clearLog();
				refresh();
			},
			error: function() 
			{ 
				logUtente("<p>Errore di connessione al server:<br/> si prega di verificare lo stato della connessione e ripetere l'operazione.</p>");
			}
	});
}

function eliminaSelezionata(){
	dataString = "idsala="+$("#id-sala").val();
	
	logUtente("<p>Eliminazione sala in corso...</p>");
	
	$.ajax({  
		type: "GET",  
		url: "../admin/elimina-sala",   
		data: dataString,  
		success: function(response) 
		{
			$("#poltrone").html("");
			$("#r-number").val("2");
			$("#c-number").val("2");
			$("#scelta-sala").html("<option value=\"-1\"></option>\n");
			$("#scelta-sede").val("-1");
			$("#nome-sala").val(null);
			$("#sigla-sala").val(null);
			$("#id-sala").val(null);
			$("#totale-posti").val(0);
			nomeSalaChanged();
			siglaSalaChanged();
			logUtente(response);
		},
		error: function() 
		{
			logUtente("<p>Errore di connessione al server o informazioni inserite errate/incomplete:<br/> si prega di verificare lo stato della connessione e ripetere l'operazione.</p>");
		}
	});
}

function salvaModifiche(){
	var rows = parseInt($("#r-number").val());
	var columns = parseInt($("#c-number").val());
	
	if(rows === "0" || columns === "0" || $("#totale-posti").val() === "0")
	{
		logUtente("<p><font color=\"red\">Dati inseriti non validi. Devono essere presenti delle poltrone in sala!</font></p>");
		return false;
	}
		
	var csvPoltrone="";
	
	for(var i=1;i<=rows;i++)
			for(var j=1;j<=columns;j++)
				if($("#"+map[i]+j).attr("poltrona") != null && $("#"+map[i]+j).attr("poltrona") == "true")
					csvPoltrone+=","+map[i]+j;
	
	csvPoltrone=csvPoltrone.substring(1, csvPoltrone.length);
	
	var dataString="";
	
	if(status === "creazione")
	{
		dataString = "sigla="+$("#sigla-sala").val()+
			"&nome="+$("#nome-sala").val()+"&totaleposti="+$("#totale-posti").val()+
			"&codicesede="+$("#scelta-sede").val()+"&csvpoltrone="+csvPoltrone;
		
		logUtente("<p>Creazione sala in corso...</p>");
		
		$.ajax({  
			type: "POST",  
			url: "../admin/crea-nuova-sala",  
			data: dataString,  
			success: function(response) 
			{
				logUtente(response);
			},
			error: function() 
			{
				logUtente("<p>Errore di connessione al server o informazioni inserite errate/incomplete:<br/> si prega di verificare lo stato della connessione e ripetere l'operazione.</p>");
			}
		});
		
	}
	else
	{
		dataString = "sigla="+$("#sigla-sala").val()+
		"&nome="+$("#nome-sala").val()+"&totaleposti="+$("#totale-posti").val()+
		"&codicesede="+$("#scelta-sede").val()+"&csvpoltrone="+csvPoltrone+"&idsala="+$("#id-sala").val();
		
		logUtente("<p>Aggiornamento sala in corso...</p>");
		
		$.ajax({  
			type: "POST",  
			url: "../admin/aggiorna-sala",  
			data: dataString,  
			success: function(response) 
			{
				logUtente(response);
			},
			error: function() 
			{
				logUtente("<p>Errore di connessione al server o informazioni inserite errate/incomplete:<br/> si prega di verificare lo stato della connessione e ripetere l'operazione.</p>");
			}
		});
	}
	
}


function modificaCrea(){
	
	if(status === "modifica")
	{
		$("#scelta-sala-tr").hide();
		$("#elimina-sala-tr").hide();
		$("#id-sala-tr").hide();
		$("#titolo").html("Crea nuova sala:");
		$("#salva").val("Conferma creazione sala");
		poltrone=0;
		status = "creazione";
	}
	else
	{
		$("#scelta-sala-tr").show();
		$("#elimina-sala-tr").show();
		$("#id-sala-tr").show();
		$("#titolo").html("Modifica sala esistente:");
		$("#salva").val("Salva le modifiche");
		status = "modifica";
	}
	
	clearFormValues();
	refresh();
}

function nomeSalaChanged(){
	$("#nome-sala-h1").html("Sala "+$("#sigla-sala").val()+": "+$("#nome-sala").val());
}

function siglaSalaChanged(){
	$("#nome-sala-h1").html("Sala "+$("#sigla-sala").val()+": "+$("#nome-sala").val());
}

function refresh(){

	var tableContent="";
	var rows=parseInt($("#r-number").val());
	var columns=parseInt($("#c-number").val());
	poltrone=0;
				
	var poltronaMap={};
			
	for(var i=1;i<=rows;i++)
		for(var j=1;j<=columns;j++)
			if($("#"+map[i]+j).attr("poltrona") != null && $("#"+map[i]+j).attr("poltrona") == "true")
			{
				poltronaMap[map[i]+j]="true";
				poltrone++;
			}
			else
			{
				poltronaMap[map[i]+j]="false";
			}
	
	for(var i=1;i<=rows;i++)
	{	
		tableContent+="<tr>";
		for(var j=1;j<=columns;j++)
			tableContent+="<td id=\""+map[i]+j+"\" poltrona=\""+poltronaMap[map[i]+j]+"\" onclick=\"change(this)\"></td>";
		tableContent+="</tr>\n";
	}
				
	$("#poltrone").html(tableContent);
	$("#totale-posti").val(poltrone+"");
	
}

function change(elem){

	if(elem.getAttribute("poltrona") === "true")
	{
		elem.setAttribute("poltrona","false");
		poltrone--;
	}
	else
	{
		elem.setAttribute("poltrona","true");
		poltrone++;
	}
	
	$("#totale-posti").val(poltrone+"");
}
		
function addr(){

	if(parseInt($("#r-number").val())<26)
	{
		$("#r-number").val(parseInt($("#r-number").val())+1);
		refresh();
	}
}
			
function dimr(){

	if(parseInt($("#r-number").val())>0)
	{
		$("#r-number").val(parseInt($("#r-number").val())-1);
		refresh();
	}
}
			
function addc(){

	$("#c-number").val(parseInt($("#c-number").val())+1);
	refresh();
}
			
function dimc(){

	if(parseInt($("#c-number").val())>0)
	{
		$("#c-number").val(parseInt($("#c-number").val())-1);
		refresh();
	}
}
